// pages/video/video.js
import request from '../../utils/request'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    videoGroupList:[], //导航标签数据
    navId: '', // 导航的标识
    videoList:[],//视频列表数据
    videoId:'',//视频id标识
    videoUpdateTime:[],//记录video播放的时长
    isTriggered:false, //标识下拉刷新是否被触发
  },

  /**
   * 生命周期函数--监听页面加载
   */
   onLoad: function (options) {
    // 获取导航数据
    this.getVideoGroupListData();
   
  },

  //获取导航数据
  async getVideoGroupListData(){
    let videoGroupListData = await request('/video/category/list');
    this.setData({
      videoGroupList:videoGroupListData.data.slice(0,9),
      //导航下标默认处于第一位
      navId:videoGroupListData.data[0].id
    })
    //获取视频列表数据
    this.getVideoList(this.data.navId);
  },

  //获取视频列表数据
  async getVideoList(id) {
    if (!id){
      return;
    } 
    let result = await request('/video/group', { id })
    let videoListData=await Promise.all(result.datas.map(async item=>{
      item.id=item.data.vid
      let result=await request('/video/url',{id:item.id})
      item.url=result.urls[0].url
      return item
    }))

    // 关闭消息提示框
    wx.hideLoading();
    this.setData({
      videoList:videoListData,
      isTriggered:false //关闭下拉刷新
    })
  },

  
  //点击切换导航的回调
  changeNav(event){
    let navId = event.currentTarget.id;
    this.setData({
      navId,
      videoList:[]
    })
    //显示正在加载
    wx.showLoading({
      title: '正在加载',
    })

    //动态获取当前导航对应的视频数据
    this.getVideoList(this.data.navId)
  },

  //点击播放/继续播放的回调
  handlePlay(event){
   let vid = event.currentTarget.id

   //更新data中videoId的状态数据
    this.setData({
      videoId:vid
    })

   //创建控制video标签的实例对象
   this.videoContext = wx.createVideoContext(vid);
  // 判断当前的视频之前是否播放过，是否有播放记录, 如果有，跳转至指定的播放位置
  let {videoUpdateTime} = this.data;
  let videoItem = videoUpdateTime.find(item => item.vid === vid);
  if (videoItem) {
    this.videoContext.seek(videoItem.currentTime);
  }
  },

  //监听视频播放进度的回调
  handleTimeUpdate(event){
    // console.log(event);
    let videoTimeObj = {vid: event.currentTarget.id, currentTime:event.detail.currentTime};
    let {videoUpdateTime} = this.data;
    let videoItem = videoUpdateTime.find(item => item.vid === videoTimeObj.vid);
    if(videoItem){
      videoItem.currentTime = videoTimeObj.currentTime;
    }else{
      videoUpdateTime.push(videoTimeObj);
    }
    //更新videoUpdateTime的状态
    this.setData({
      videoUpdateTime
    })
  },

  //视频播放结束调用的回调
  handleEnded(event){
    //移除记录播放时长数组中的对象
    let {videoUpdateTime} = this.data;
  
    videoUpdateTime.splice(videoUpdateTime.findIndex(item => item.vid === event.currentTarget.id),1);
    this.setData({
      videoUpdateTime
    })
  },

  // 下拉刷新的回调
  handleRefresher(){
    console.log('下拉刷新');
    //再次发请求获取视频数据
    this.getVideoList(this.data.navId);
  },

  //自定义上拉触底的回调 scroll-view
  // handleToLower(){
  //   console.log('scroll-view上拉触底');
  //   // 数据分页： 1. 后端分页， 2. 前端分页
  //   console.log('发送请求 || 在前端截取最新的数据 追加到视频列表的后方');
  //   console.log('网易云音乐暂时没有提供分页的api');

  //   let videoList = this.data.videoList;
  //    // 将视频最新的数据更新原有视频列表数据中
  //   videoList.push('../mv/MVurl.json')
  //   this.setData({
  //     videoList
  //   })
  
  // },

  //跳转至搜索界面
  toSearch(){{
    wx.navigateTo({
      url: '/pages/search/search',
    })
  }},
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    console.log('页面下拉刷新');
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    console.log('页面上啦触底');
  },

  /**
   * 用户点击右上角分享
   */
  // onShareAppMessage({from}) {
  //   console.log(from);
  //   if(from === 'button'){
  //       return{
  //           title:'来自button的转发',
  //           page:'/pages/video/video',
  //           imageUrl:'/static/images/nvsheng.jpg'
  //       }
  //   }else{
  //       return{
  //           title:'来自menu的转发',
  //           page:'/pages/video/video',
  //           imageUrl:'/static/images/nvsheng.jpg'
  //       }
  //   }
  
  // }
})